%format latexg
\documentstyle[standard,german,11pt]{article}

\newcommand{\alt}[1]{$\diamondsuit${\tt#1}}
\newcommand{\ctrl}[1]{$\wedge${\tt#1}}

\def\version{1.53}

\setlength{\parindent}{0pt}
\setlength{\parskip}{2.5ex}

\def\papername{GNU-Shell \version}

\pagestyle{standardkopf}

%------------------------------------------------------------------------------

\begin{document}



\thispagestyle{empty}
   \rule{0in}{3in}
   \begin{center}
   {\huge\bf GNU-Shell}\\
   \vspace{3ex}
   {\Large Eine GEM-Umgebung f�r GNU-C}\\
   \vspace{2ex}
   \large
   Christian Felsch\\
   \vspace{2ex}
   Version \version \\
   \end{center}
\vfill
\newpage

\pagenumbering{roman} 
\tableofcontents 
\newpage 
\pagenumbering{arabic}


%--------------------------------------------------------------------------

\section{Einf�hrung}

Da der GNU-C-Compiler unter UNIX entstand, wie alle andere GNU-Soft\-ware
auch, ist die Bedienung normalerweise nur �ber einen Commandline-Inter\-pre\-ter,
z.B. Mupfel, m�glich. Nur mit einer solchen Shell ist es m�glich, das erfoderliche 
Environment zu setzen und den Programmen beim Start jede Menge an Optionen 
�bergeben zu k�nnen.

Da man aber nun auf dem Atari eine graphische Oberfl�che gew�hnt ist, lag es
nahe, f�r den GNU-Compiler eine solche, sauber in GEM eingebundene, Umgebung
zur Verf�gung zu stellen.

Die GNU-Shell ist vollst�ndig in Megamax Modula2 geschrieben, unter 
Verwendung der MAGIC-Library von Peter Hellinger. Sie ist komplett mit der Maus
zu bedienen, die meisten Funktionen sind aber auch �ber die Tastatur 
erreichbar.
  
Die GNU-Shell ist FreeWare. Jeder darf sie benutzen und �ber jeden {\sl kostenlosen}
Weg, ob nun durch eine Mailbox, FTP oder sonst eine M�glichkeit, weitergeben. 
Wenn jemandem die GNU-Shell gut gef�llt und er damit viel arbeitet, darf er
mir auch gern etwas auf das unten angegebene Konto �berweisen ! 

\begin{quote}
{\bf Eine Weitergabe �ber einen PD-Versand ist NICHT gestattet !}
\end{quote}

Bei der Weitergabe ist darauf zu achten, da� das GNU-Shell Paket immer komplett 
kopiert wird, d.h.\ es m�ssen die folgenden Dateien enthalten sein:

\begin{center}
\begin{tabular}{ll}
 GNUSHELL.PRG &  die eigentliche GNU-Shell \\
 GNUSHELL.RSC &  die Resource dazu \\
 GNUSHELL.INF &  Parameterdatei mit Einstellungen, Pfaden, usw. \\
 GNUSHELL.TEX &  Dokumentation in \LaTeX \\
 STANDARD.STY &  Style f�r die Doku \\
 PIPEWIND.PRG &  Programm, das die Ausgaben ins Fenster lenkt \\
 HISTORY.TXT  &  Entwicklung der GNU-Shell \\
\end{tabular}
\end{center}

Die neuste Version liegt immer in den Maus HH : 040 - 538 16 57, der TurboTron
040 - 890 11 62 und auf dem FTP-Server mufus.rz.tu-harburg.de (134.28.200.99)
im Verzeichnis /anton/ATARI/gnu/gcc.

Ich erhoffe mir dadurch eine gro�e 'Anwendergemeinde` und viele neue Anregungen. 

Au�erdem wurde die GNU-Shell noch nicht bis ins kleinste getestet, es k�nnten 
also auch noch grobe Fehler durch sie verursacht werden:
  
\begin{quote}
{\bf Ich �bernehme keinerlei Haftung f�r eventuelle Sch�den, die durch die 
     GNU-Shell oder durch die von ihr benutzten Programme entstehen ! }
\end{quote}  

Alle Fragen, Anregungen und besonders Fehler bitte an:
\pagebreak
  
\begin{verbatim}

  Christian Felsch  
  Bevenser Weg 18  
  21079 Hamburg
  Tel: 040 - 768 18 69
  
  Bank-Verbindung:
  Postgiroamt Hamburg, 
  BLZ 200 100 20
  Konto-Nr.: 2338 67-201
  
  E-Mail:  
  christian_felsch@hh.maus.de  (mails <16K, non-UUe !)
  felsch@tu-harburg.d400.de    (big mails, UUe) 

\end{verbatim}

\newpage

%--------------------------------------------------------------------------

\section{Installation}
  
Die GNU-Shell sollte auf jedem ST$/$STE$/$TT unter allen TOS-Versionen laufen, 
testen konnte ich sie allerdings nur auf einem TT mit TOS 3.06 und MultiTOS, 
einem 1040 STE mit TOS 2.06 und einem Mega ST4 unter MAG!X. 

Die GNU-Shell l��t sich nur in Aufl�sungen mit min. 640x400 Pixel betreiben, da 
einige der Dialoge auf kleineren Aufl�sungen nicht mehr komplett dargestellt
werden k�nnten. Ansonsten gibt es, den Monitor betreffend, keine Einschr�nkungen
und die GNU-Shell sollte auch auf Grafikkarten einwandfrei funktionieren 
(getestet auf allen Atari Standardaufl�sungen).

An den RAM-Speicher stellt die GNU-Shell keine besonderen Anspr�che, ein sinnvolles
Arbeiten ist aber wohl erst ab 4 MB m�glich. Aber, wie immer bei GNU, 
gilt auch hier:  je mehr RAM, umso besser !

Zun�chst eine kurze Beschreibung der Komponenten und der Installation des 
GNU-Packets:


\subsection{Installation des GNU-Systems}

Um die GNU-Shell benutzen zu k�nnen, ben�tigt man nat�rlich den GNU Compiler !
Dieses ist ein Paket aus mehreren Disketten, da� man auf verschiedenen Wegen
bekommen kann:

\begin{itemize}
\item �ber verschiedene MailBoxen im MausNet, z.B. Maus HH 040 - 538 16 57 im
      Gruppenprogrammteil 'GNU-ST`

\item �ber verschiedene FTP-Server. Dazu ben�tigt man allerdings einen Zugang
      zum InterNet. Ich kann da den Atari-Bereich auf 
      \begin{verbatim}
      mufus.rz.tu-harburg.de (134.28.200.99) 
      in /anton/ATARI/gnu
      \end{verbatim}
      empfehlen. Dort gibts auch immer die aktuelle Version der GNU-Shell.
      
\item Ich selbst biete es an, da� man mir Disketten schickt und ich die
      entsprechenden Sachen kopiere. Ich nehme daf�r {\sl keine} Geb�hr,
      es ist aber darauf zu achten, da� gen�gend R�ckporto beigelegt wird.
      Adressen zur Kontaktaufnahme sind an Anfang dieses Textes zu finden.
\end{itemize}

Nun dazu, was man alles ben�tigt. Die hier verwendeten Archivnamen sind
nat�rlich nicht allgemeing�ltig, aber normalerweise werden �hnliche benutzt.
Bei den Zahlen im Namen handelt es sich um Versionsnummern, die sich nat�rlich
�ndern k�nnen.


\begin{center}
\begin{tabular}{|p{2.8cm}|p{3cm}|p{5.5cm}|}
\hline
Archiv		& Inhalt		& Beschreibung			\\ 
\hline
gcc245p1.zoo	& gcc.ttp		& Treiber-Programm 		\\ 
		& gcc-cpp.ttp		& C-Pr�prozessor		\\ 
		& gcc-cc1.ttp		& der eigentliche C-Compiler	\\ 
\hline
gpp245p1.zoo	& gcc-cc1plus.ttp	& C++ Compiler			\\ 
\hline
gas138p4.zoo	& gcc-as.ttp		& Assembler			\\ 
\hline
util37b.zoo	& gcc-ar.ttp		& Library-Manager		\\
		& gcc-ld.ttp		& Linker			\\
		& sym-ld.ttp		& Symbollinker f�r GDB		\\
		& gcc-nm.ttp		& Anzeigen von Symbolen		\\
		& cnm.ttp		& Symboltabelle des Programms	\\
		& fixstk.ttp		& Setzt Stacksize		\\
		& printstk.ttp		& Zeigt Stackize		\\
		& size68.ttp		& Gr��e von TEXT/DATA/BSS	\\
   		& gcc-size.ttp		& ? 				\\
		& toglclr.ttp		& Setzten der Programmbits	\\
		& xstrip.ttp		& Entfernt die Symboltabelle	\\ 
\hline
make363b.zoo	& make.ttp		& Make				\\ 
\hline
gdb36p3.zoo	& gdb.ttp		& Debugger			\\ 
\hline
libolb93.zoo	& crt0.o		& StartUp-Code, normal		\\
		& gcrt0.o		& StartUp-Code, debugging	\\
		& gnu.olb		& Standard C-Library		\\
		& gnu16.olb		& 				\\
		& iio.olb		& Integer-IO			\\
		& iio16.olb		&				\\
\hline
includ93.zoo	& *.h			& Headerfiles f�r Standard-C	\\
\hline
mntlib34.zoo	& mcrt0.o		& StartUp-Code, normal		\\
		& mgcrt0.o		& StartUp-Code, debugging	\\
		& mint.olb		& MiNT-Lib, s.u.		\\
		& mint16.olb		&				\\
		& miio.olb		& Integer-IO			\\
		& miio16.olb		&				\\
\hline
mntinc34.zoo	& *.h			& Headerfiles f�r MiNT-Lib	\\
\hline
gemolb30.zoo	& gem.olb		& GEM-Funktionen		\\
		& gem16.olb		&				\\
\hline
pmlolb22.zoo	& pml.olb		& Portable Math Library		\\
		& pml16.olb		&				\\
\hline
crsolb16.zoo	& curses.olb		& BSD Curses und Termcap	\\
		& curses16.olb		&				\\
\hline
gppolb20.zoo	& g++.olb		& C++ Library			\\
\hline
gppinc20.zoo	& *.h			& Headerfiles f�r C++		\\
\hline
gempp15.zoo	& gem++.olb		& C++ Klassen f�r GEM		\\
		& *.h			& Headerfiles 			\\
\hline
\end{tabular}
\end{center}

Die 16 und 32 im Namen zeigen an, wieviele Bits der Typ 'int` umfa�t. 
Au�erdem sind in den Archiven machnmal noch Libs, deren Namen mit einem 'b`
beginnen. Dieses Libs sind mit der Compiler-Option '-mbaserel` erzeugt worden
und unterst�tzen unter MiNT ab Version 0.96 das SharedMemory-Konzept.

Noch etwas zur MiNT-Lib: Sie ist als kompletter Ersatz f�r die GNU-Lib gedacht,
beinhaltet alle neuen GEMDOS-Calls unter MiNT und ist teilweise kompatibler
zu echten UNIX-Libraries. Au�erdem ist sie PD, imgegensatz zur GNU-Lib, die
unter der GNU Public Licence vertrieben wird.

Wenn man beide Libs benutzen m�chte, mu� die MiNT-Lib unter dem Namen 'mint.olb`
vorliegen und die Startup-Codes mit 'm` (mcrt0.o und mgcrt0.o) beginnen. Dann 
kann man den Compiler mit der Option '-mint` dazu veranlassen, diese zu benutzen. 
Wenn man nur die MiNT-Lib nutzen m�chte, nennt man die Dateien einfach in die 
Standardnamen (wie die der GNU-Lib) um. 

Zun�chst m�ssen alle Archive ausgepackt werden. Es bietet sich dazu folgende
Verzeichnisstruktur an:

\begin{verbatim}

   gnu -
       |
       - bin
       |
       - lib
       |
       - include -
                 |
                 - g++
                 |
                 - sys

\end{verbatim}

Nach 'bin` alle *.TTP, nach 'lib` alle *.OLB und *.O und nach 'include` alle
*.h kopieren. Nun noch in der GNU-Shell unter 'Environment...' Pfade anmelden
und es kann losgehen.


F�r alle, die nicht mit der GNU-Shell arbeiten wollen (gibts da� ? :-)), hier 
eine kurze Erkl�rung der zu setzenden Environmentvariablen:

\begin{center}
\begin{tabular}{ll}
PATH		& 'bin`-Ordner mit eintragen		\\
GCCEXEC		& Pr�fix der GNU-Programme (z.B. g:/gnu/bin/gcc-) \\
GNUINC		& Include-Verzeichnis 			\\
GXXINC		& Verzeichnis der C++-Headerfiles	\\
GNULIB		& Verzeichnis der Libraries		\\
TEMP oder	& Tempor�r-Verzeichnis 			\\
TMPDIR oder	& \\
TMP		& \\
\end{tabular}
\end{center}


\subsection{Installation der GNU-Shell}

Nach dem Auspacken des Archives kann das Verzeichnis mit allen Dateien irgendwo
hin kopiert werden.

Die GNU-Shell erwartet beim Start die Resourcedatei GNUSHELL.RSC im gleichen
Verzeichnis, in dem die Shell GNUSHELL.PRG selbst liegt. Dann wird auf dem
gleichen Pfad noch die Parameterdatei GNUSHELL.INF gesucht. Wird diese 
nicht gefunden bzw. wenn die Datei eine falsche Gr��e hat, bekommt man eine 
Warnmeldung, und man sollte die Einstellungen �berpr�fen.

Unter normalem TOS wird beim Start von Compiler und Make eine Log-Datei
angelegt, in der alle Ausgaben mitprotokoliert werden. W�hrend diese
Programme laufen, sieht man auf dem Bildschirm nur eine kleine Hinweisbox.
Diese Log-Dateien werden erst wieder gel�scht, wenn die GNU-Shell verlassen
wird, w�hrend einer GNU-Shell-Sitzung werden die neuen Ausgagen immer am 
Ende angeh�ngt.

Zur Benutzung der GNU-Shell ist die Installation von MiNT dringend zu empfehlen,
damit man mit Make und Debugger richtig arbeiten kann.
Dazu mu� sich lediglich die Datei MINT.PRG im Autoordner befinden, andere UNIX-
Tools werden nicht vorrausgesetzt (au�er nat�rlich denen, die man im Makefile
benutzen m�chte).

Sobald MiNT installiert ist, wird das Programm 'PipeWind` benutzt, um Programme
zu starten und deren Ausgaben in einem Fenster umzulenken. Zus�tzlich werden
die Ausgaben auch in den jeweiligen Log-Dateien mitprotokoliert.
Auch unter MultiTOS wird zum Starten von Compiler und Make dieses Programm
benutzt. Dabei ist zu beachten, da� PipeWind lediglich die Ausgaben eines
Programmes in ein Fenster schreibt, ein interaktives Arbeiten (also auch
Eingaben machen) ist z.Zt. noch {\sl nicht} m�glich ! 
Deshalb werden auch nur Compiler und Make mit diesem Programm gestartet, alle 
sonstigen Programme werden normal behandelt.

Ab der Version 1.5 unterst�tzt die GNU-Shell das Minix Filesystem. Dieses 
Filesystem kann von MiNT nachgeladen werden und bietet z.B. lange Dateinamen,
symbolische Links und viele weitere UNIX-Funktionen. Da die Dialoge alle
auf Dateinamen mit max. 12 Zeichen ausgelegt sind, werden von l�ngere Namen 
nur die ersten zw�lf angezeigt, intern benutzt die GNU-Shell aber nat�rlich 
die langen.

\newpage
%--------------------------------------------------------------------------

\section{Das Funktionsfenster}

Bei dem Funktionsfenster handelt es sich im Grunde genommen um eine Dialogbox, die in
ein Fenster gelegt wurde. Dieser Fenster-Dialog ist sowohl mit der Maus,
als auch mit der Tastatur zu bedienen (die entsprechenden Tasten sind 
in eckigen Klammern angegeben). Das Fenster ist ein normales GEM-Fenster, 
bei dem allerdings nur die Objekte zum Verschieben und zum Schlie�en
vorhanden sind. 

Das Funktionsfenster stellt die wichtigsten Funktionen zum Arbeiten mit GCC zur Ver\-f�\-gung. 
Dieses sind: 

\subsection{Arbeitsdatei}

Wird mit der Maus auf das Textfeld geklickt, erscheint eine Dateiauswahlbox 
und man kann die gew�nschte Quelldatei ausw�hlen. Hat man eine Datei 
ausgew�hlt, wird ihr Name anschlie�end in dem Funktionsfenster angezeigt. 
War bereits ein Makefile gew�hlt, wird dieses bei der Auswahl einer neuen 
Arbeitsdatei gel�scht.

\subsection{Makefile}
 
Hier kann auf die gleiche Art und Weise wie die Arbeitsdatei ein Makefile
bestimmt werden.
                            
\subsection{Editor [E]}

Hiermit wird der Editor gestartet. An ihn wird die aktuelle Arbeitsdatei 
�bergeben. Wird bei Auswahl des Buttons die {\sl linke} SHIFT-Taste 
gedr�ckt, wird anstatt der Arbeitsdatei das eingestellte Makefile an den 
Editor �bergeben.

Einige Editoren bieten die M�glichkeit, sie mit einem Exit-Code zu verlassen,
z.B. QED mit ALT-Fx.
Die GNU-Shell wertet diese Codes aus und unterst�tzt z.Zt.\ folgende Funktionen:

\begin{itemize} 
\item[1] : Compiler mit aktueller Arbeitsdatei starten.
\item[2] : Make starten.
\end{itemize}


\subsection{Compiler [C]}

Hiermit wird der Compiler mit der aktuellen Arbeitsdatei gestartet. 
Die eingestellten Optionen werden ber�cksichtigt. 

W�hrend des Compiler-Laufes werden alle Ausgaben in der Log-Datei \\
'COMPILER.LOG` mitgeschrieben, die dann mit dem Editor angesehen werden kann.

\subsection{Make [M]}

Hiermit wird das Make mit dem aktuellen Makefile gestartet.
         
Wie beim Compiler werden auch beim Make die Ausgaben in die Log-Datei 
'MAKE.LOG` umgelenkt.

Da das Make manchmal auftretende Fehler nicht extra anzeigt, kann es sein,
da� sich nach der Beendigung des Makes eine Datei namens 'COMPILER.ERR` im 
aktuellen Verzeichnis befindet, in der der GCC selbst�ndig die Fehler
mitprotokolliert. Man kann das Erzeugen dieser Datei mit der Compiler-Option
'-z` auch erzwingen.

{\bf ACHTUNG}: Unter normalem TOS (also ohne MiNT) ist eine Benutzung
des Makes nich m�glich, da es z.B. den Compiler als neuen Prozess startet, was
eben unter TOS nicht m�glich ist. In diesem Falle enth�lt die LOG-Datei die
Meldung 'Cannot fork` .


\subsection{Starten... [S]} 

Hier wird ein Programm gestartet. Es erscheint eine Dateiauswahlbox, mit der 
das Programm ausgew�hlt werden kann.

Dem Programm wird das eingestellte Environment �bergeben.
Wird ein Programm mit der Endung TTP/GTP ausgew�hlt, hat man die M�glichkeit, 
eine Argumentzeile an dieses zu �bergeben. In der erscheinenden Dialogbox 
kann man Argumente direkt eingeben oder �ber eine Dateiauswahlbox einen 
Dateinamen finden. Klick man dann 'starten` an, wird an das Programm der 
Inhalt der Argumentzeile �bergeben.


\section{Die Men�leiste}
  
Im folgenden Abschnitt werden alle Funktionen aus der Men�leiste 
beschrieben.

In der �berschrift der einzelnen Men�punkte steht in eckigen Klammern 
die jeweilige Tastenkombination, mit der diese 
Funktion auch �ber die Tastatur ausgel�st werden kann. Meist handelt es 
sich dabei um Kombinationen der {\sf Alternate} oder {\sf Control} Taste 
zusammen mit einer Buchstabentaste. In einem solchen Fall steht vor dem 
Buchstaben ein {\bf \ctrl{}} f�r {\sf Control} bzw.\ ein {\bf \alt{}} f�r 
{\sf Alternate}. 

        
\subsection{GNU-Shell}

Hier gibts eine kleine Info-Box �ber Programmversion, Autor usw.

\subsection{Datei}

 Die Men�punkte 'Arbeitsdatei` bis 'Starten...` entsprechen den Funktionen,
 die �ber das Funktionsfenster erreichbar sind.

\subsection{Debuggen... [D]}

Hier kann, sofern MiNT installiert ist, der GNU-Debugger 'gdb` gestartet
werden.

Es erscheint eine Dateiauswahlbox, in der zu erst das ausf�hrbare Programm,
und anschlie�end die Symboldatei ausgew�hlt werden m�ssen.

Unter MiNT wird der GDB {\sl nicht} in einem Fenster gestartet (s.o.), sondern
nach dem L�schen des Bildschirms als normales Programm gestartet. 
Unter MultiTOS wird nat�rlich MINIWIN benutzt.

\subsection{Command-Shell}

 Hier kann die unter 'Programme ...` angemeldete Kommando-Shell gestartet
 werden. Man hat auch die M�glichkeit, eine Argumentzeile einzugeben.
 Beim Start wird das eingestellte Environment an die Shell �bergeben.

 Ein Hinweis f�r alle MUPFEL-User: Mir ist bekannt, da� nach Beendigung der
 Shell die Maus als Biene bleibt. Ich wei� nicht warum das so ist, bei
 anderen Shells passiert es nicht.
 
\subsection{Ende [\ctrl{Q}]}
      
 Beendet die GNU-Shell {\sl ohne} weitere Abfragen und eventuell ge�nderte 
 Parameter werden auch {\sl nicht} gesichert !

\subsection{Parameter}

\subsubsection{Funktionsfenster �ffnen [\alt{O}]}

�ffnet das eventuell geschlossene Funktionsfenster wieder.

\subsubsection{Environment... [\alt{E}]}

 In dieser Box werden die Pfade f�r das Environment eingestellt.
 Die Pfade im Standard-Environment {\sl m�ssen} immer gesetzt sein,
 da sonst eine einwandfreie Benutzung des Compilers nicht m�glich ist !
        
 Zum �ndern der Pfade k�nnen diese direkt �ber die Tastatur eingegeben 
 werden, oder aber man klickt auf den entsprecheneden Button und w�hlt 
 den Pfad mit einer Dateiauswahlbox aus. 

\begin{itemize}        
\item {\bf BIN}: Ordner, in dem sich alle Binaries (gcc.ttp, u.s.w.) 
      befinden.
\item {\bf INCLUDE}: Der Ordner f�r die Standard-Include-Dateien
\item {\bf INCLUDE C++}: Der Ordner f�r die Include-Dateien von C++
\item {\bf LIB}: Der Ordner, in dem sich die OLBs befinden       
\item {\bf TMP}: Das Tempor�rverzeichnis f�r den Compiler
\end{itemize}

 Von der GNU-Shell werden die Environment-Variablen GCCEXEC, GNU\-LIB, 
 GNUINC, GXXINC und TEMP entsprechend der get�tigten Eingaben gesetzt.
         
 Zus�tzlich zu dem Standard-Environment k�nnen im unteren Teil der
 Box weitere En\-vi\-ron\-ment-Variablen gesetzt werden.
 Die hier get�tigten Eintragungen werden {\sl nicht} �berpr�ft, d.h.\ sie
 werden so ins Environment eingetragen. Eine Eintragung kann z.B.\ so 
 aussehen:

\begin{quote}             
 PATH=c:$\backslash$bin,g:$\backslash$gnu$\backslash$bin
\end{quote}              
 
 Es k�nnen max. 3 zus�tzliche Eintragungen gemacht werden, d.h.
 pro Zeile nur {\sl eine} Variable !
        
 F�r ein einwandfreies Funktionieren des Make wird das Setzen der
 Variablen PATH dringend empfohlen!

 Die unter 'Programme ...` eingestellte Kommandoshell wird zus�tzlich im
 Environment mit der Variablen 'SHELL` eingetragen.
 
 
\subsubsection{Programme... [\alt{P}]}

 Hier m�ssen die Programme eingestellt werden, die die Gnu-Shell ansteuern
 soll. �ber den Button vor den einzelnen Zeilen kann eine Dateiauswahlbox
 aktiviert und die Programme ausgew�hlt werden.

 Bei 'G++` mu� nur etwas eingetragen werden, wenn ein extra Treiberprogramm
 f�r C++ vorhanden ist (z.B. bei Compiler mit Version $<$ 2.x).

 Wird der Dialog mit 'Ok` verlassen, wird mit dem bei 'GCC` eingestellten 
 Treiber automatisch die Compiler-Version ermittelt.
 
\subsubsection{Compiler... [\alt{C}]}

 Hier werden alle Optionen f�r den Compiler eingestellt. Bei den einzelnen
 Optionen ist in eckigen Klammern {\bf [ ]} jeweils die GNU-Option angegeben,
 die dem Compiler �bergeben wird.
 
\begin{itemize}
\item {\bf Optimierung }[-O,-O2] : Code-Optimierung. -O2 gibt es erst ab 
      Compiler-Version $>$ 2 !
\item {\bf Warnung }[-Wall,-w] : Es werden vom Compiler entweder alle oder keine
      Warnungen ausgegeben.
\item {\bf Integer }[-mshort] : Legt die L�nge des Datentyps 'int` fest.
\item {\bf Prozessor }[-m68020,-m68881] : Zur Code-Erzeugung f�r die entsprechenden
      Prozessoren. Ab Compiler-Version $>$ 2 wird anstatt -m68020 -m68030 benutzt.
\item {\bf Code }[-gg,-ansi] : Erzeugt zus�tzliche Informationen f�r den GNU-Debugger
      bzw. Code nach striktem ANSI-Standard. Wird die Debug-Option angeschaltet,
      wird nach dem normalen Compilerlauf der Compiler nochmals gestartet, um die
      Symboldatei zu erzeugen. Dazu wird dann nicht der normale 'gcc-ld` sondern
      der Symbollinker 'sym-ld` benutzt.
\item {\bf Optionen }: Hier k�nnen weitere, nicht �ber die Buttons erreichbare
      Optionen angegeben werden. Die Eingaben werden {\sl nicht} �berpr�ft, sondern
      so an das Argument angeh�ngt !
\item {\bf Inc-Pfad }[-I] : Hier k�nnen zus�tzliche Verzeichnisse eintgetragen werden,
      auf denen der Compiler nach Headerdateien suchen soll. Die Eingaben 
      werden {\sl nicht} �berpr�ft, sondern so hinter '-I` geh�ngt!
\item {\bf Make-Option}: Hiermit k�nnen Argumente f�r das Make angegeben werden.
      Bei einem normalen Make-Aufruf wird der Standardpfad auf das Verzeichnis
      des Makefiles gesetzt und dann das Make gestartet.
\end{itemize}
      

\subsubsection{Linker... [\alt{L}]}

 Hier werden alle Optionen f�r den Linker eingestellt. 

 Mit den Buttons 'std. Libary` gibt man an, ob die normale GNU-Lib oder 
 die MiNT-Lib [-mint] benutzt wird.

 Bei 'Outfile-Name` wird der Dateiname eingegeben, den der Compiler
 erzeugen soll. Wird als erstes Zeichen ein '*` eingegeben, wird der 
 Name des Quelltextes �bernommen und die nach dem '*` folgende 
 Extension angeh�ngt. Wenn das erste Zeichen kein '*` ist, wird der 
 eingegebene Text als vollst�ndiger Name �bernommen.
  
 Au�erdem k�nnen hier noch weitere Linker-Optionen, Library-Pfade und -Namen 
 eingegeben werden.
 
 �ber 'zuzulinkende Libraries` gelangt man in die Liste aller verf�gbarer
 Libraries. Hier k�nnen nun bis zu 45 Libs direkt ausgew�hlt werden. 
 Die GNU-Shell sucht unter dem im Environment eingestellten LIB-Pfad die 
 vorhandenen OLBs selbstst�ndig und tr�gt deren Namen in die Box ein. 
 

\subsubsection{Allgemeines... [\alt{A}]}

 Hier k�nnen die allgemeinen Einstellungen der GNU-Shell ver�ndert werden.
 Zum einen k�nnen hier Einstellungen f�r den Editor gemacht werden:
 
\begin{itemize}
\item {\bf ben�tigt Pfad}: 
      Vielen Editoren ben�tigen ihren eigenen Pfad,
      damit sie ihre Resource und Infodateien finden k�nnen. Ist der 
      Schalter nicht gesetzt, ist das aktuelle Verzeichnis beim Start
      des Editors dasjenige, in dem sich der Quelltext befindet.

\item {\bf starten}: 
      Treten beim Compiler- oder Make-Lauf Fehler auf, kann hier entschieden
      werden, ob nach Beendigung des jeweiligen Programms der Editor mit
      Quelltextdatei und Log-Datei gestartet werden soll.

      Wenn der Editor /kein/ VA\_START kann (s.u.), ist unter MultiTOS 
      darauf zu achten, da� jedesmal der Editor {\sl erneut} in den 
      Speicher geladen wird !

\item {\bf kann VA\_START}:
      Unter MultiTOS und MAG!X kann die GNU-Shell mit einem parallel laufenden
      Editor kommunizieren, indem sie an ihn eine VA\_START-Meldung schickt.

\end{itemize}      
                        
 Zum anderen k�nnen hier Einstellungen zum Programmstarten gemacht werden:
 (z.Zt. nur eine)

\begin{itemize}
\item {\bf warten}:
      Wird dieser Schalter gesetzt, wird, nachdem ein gestartetes TOS/TTP-
      Programm beendet wurde, auf einen Tastendruck gewartet. Man kann dann
      noch eventuelle Textausgaben in Ruhe lesen.
\end{itemize}


\subsubsection{sichern... [\alt{S}]}
      
 Die eingestellten Parameter werden nach einer Abfrage in der Infodatei 
 abgespeichert.

%--------------------------------------------------------------------------

\end{document}
